function _trace(msg) {
    Components.classes["@mozilla.org/consoleservice;1"]
    .getService(Components.interfaces.nsIConsoleService)
    .logStringMessage(msg);
}
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cr = Components.results;
const ctor = Components.Constructor;
const Exception = Components.Exception;
const module = Components.utils.import;
const error = Components.utils.reportError;

module("resource://gre/modules/XPCOMUtils.jsm");

const NS_ERROR_NO_INTERFACE = Cr.NS_ERROR_NO_INTERFACE;
const NS_ERROR_FAILURE = Cr.NS_ERROR_FAILURE;
const NS_ERROR_NO_AGGREGATION = Cr.NS_ERROR_NO_AGGREGATION;
const NS_ERROR_INVALID_ARG = Cr.NS_ERROR_INVALID_ARG;



function ffjepsayhello() {}
/* Add initialization code here */
//    classDescription: "Description of project to help user understand the usage or purpose";
//    contractID: "@ff-ext-in-java.googlecode.com/ffjepC2;1";
//    classID: Components.ID("{4b797369-32ad-4e59-875f-e47e27e5eb38}");


ffjepsayhello.prototype = {
    
        
    classDescription: "Description of project to help user understand the usage or purpose",
    contractID: "@ff-ext-in-java.googlecode.com/ffjepC2;1",
    classID: Components.ID("{4b797369-32ad-4e59-875f-e47e27e5eb38}"),
    service: true,
  
    QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports , Ci.brzISayHello]),
 
 
    _xpcom_categories: [{
        category: 'profile-after-change'
    }],

    /* Add your interface methods here */

    /**
     * This is an example implementation of a made-up interface. See
     * the nsIHelloWorld file for the example interface.
     */
    say : function HW_say(lang) {
        
        
        
        if(lang==Ci.brzISayHello.ENGLISH) {
            return 'Hello World!';
        }
        if(lang==Ci.brzISayHello.HUNGARIAN) {
            return '\u00dcdv Vil\u00e1g!';
        }
        if(lang==Ci.brzISayHello.FRENCH) {
            return 'Bonjour tout le monde';
        }
        if(lang==Ci.brzISayHello.ITALIAN) {
            return 'ciao a tutti';
        }
        return 'Hello ...';    
    }
/** JavaScriptImplementation of brzISayHello
     */

}///end of prototype

if (XPCOMUtils.generateNSGetFactory) {
    var NSGetFactory = XPCOMUtils.generateNSGetFactory([ffjepsayhello]);
}
else {
function NSGetModule() XPCOMUtils.generateModule([ffjepsayhello]);
}
